Automatically Mining Patterns For Rule Based Data Standardization Systems

ABSTRACT

Computer program products and systems are provided for mining for sub-patterns within a text data set. The embodiments facilitate finding a set of N frequently occurring sub-patterns within the data set, extracting the N sub-patterns from the data set, and clustering the extracted sub-patterns into K groups, where each extracted sub-pattern is placed within the same group with other extracted sub-patterns based upon a distance value D that determines a degree of similarity between the sub-pattern and every other sub-pattern within the same group.

BACKGROUND

1. Technical Field

The present invention relates to the field of data mining andestablishing patterns in data.

2. Discussion of the Related Art

Enterprises store significant quantities of data as information assets.However, this data is often in the form of free text and is of poorquality. In order to increase the quality and usefulness of the data,the data is standardized by employing rule based data standardizationsystems in which domain experts manually code rules for handlingimportant and prevalent patterns.

A lexicon may be composed for establishing patterns in text data.Consider, for example, a fictitious noisy record such as “256 B SmithTowers HL Road Somecity 45”. This record may be represented with thefollowing expression referred to as the following pattern: (̂++R+SĈ),where “̂” is a marker representing a number (e.g., “256” and “45”), “+”is a marker representing unknown text (e.g., “B Smith” and “”HL″), and“R”, “S” and “C” are markers representing a building (e.g., “Towers”), astreet (e.g., “Road”) and a city (e.g., “Somecity”). The text data istypically represented in a manner such as this in order to identifyvarious semantic entities and also to identify and correct mistakes(also referred to as standardization of text) or missing text. Forexample the above text is segmented into various components such as doornumber (256 B), building name (SMITH), and building type (TOWERS),StreetName (HL), Street type (ROAD), CITY (SOMECITY) and PIN (45). Toidentify such segments from the text data as above one has to identifythe important sub-patterns from the input text which represent a singlesemantic element. For example, the sub-pattern “̂+” identifies the doornumber, “+R” represents the building information of which first halfrepresents the building name and the second half represents the buildingtype. Similarly, other sub-patterns for Street information, city and pinare “+S”, “C”, and “̂” respectively.

Finding patterns in text can be laborious and time consuming,particularly for noisy or highly specialized data sets such as theprevious example. In particular, domain experts must hand craft thepattern rules, and this can be a very time consuming and costly process.Finding such patterns can also be subjective to the persons determiningthe patterns.

BRIEF SUMMARY

Accordingly, embodiments of the present invention include a method, acomputer program product and a system for automatically mining datapatterns in text data, wherein the embodiments comprise finding a set ofN frequently occurring sub-patterns within the data set, extracting theN sub-patterns from the data set, and clustering the extractedsub-patterns into K groups, where each extracted sub-pattern is placedwithin the same group with other extracted sub-patterns based upon adistance value D that determines a degree of similarity between thesub-pattern and every other sub-pattern within the same group.

The above and still further features and advantages of embodiments ofthe present invention will become apparent upon consideration of thefollowing detailed description thereof, particularly when taken inconjunction with the accompanying drawings wherein like referencenumerals in the various figures are utilized to designate likecomponents.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagrammatic illustration of an example data mining systemin accordance with an example embodiment of the present invention.

FIG. 2 is a flow chart depicting operational steps of automaticallymining text data in accordance with an example embodiment of the presentinvention.

DETAILED DESCRIPTION

In an example embodiment of the present invention, sub-patterns areautomatically identified in a text data corpus, in which data rules areinitially assigned to text in data records so as to establish patternsof text. A set of frequently occurring sub-patterns are automaticallyidentified by the system, and these sub-patterns are clustered intogroups of related sub-patterns.

As depicted in FIG. 1, a system 100 includes a data mining server 102and a data source 104. The data source 104 comprises one or moredatabases including text data records of any number of different typesthat are accessible by the server 102. The server 102 includes centralprocessing unit or processor 105 and a primary storage in the form ofmemory 106 (e.g., RAM and/or ROM). The memory 106 includes controlprocess logic 108 including the operating system code for the processor104 and application code for applications run by the server 102,including a sub-pattern miner application 104. The server can alsoinclude additional or secondary storage (e.g., optical and/or magneticdisk storage). Data and program information can also be stored andaccessed from the secondary storage.

The server 102 can communicate with the data source 104 via any suitableconnection including, without limitation, via cloud computing, vianetwork computing in which the server 102 is operatively coupled to oneor more other servers or other devices via any suitable type of carrierwave or signal for transfer of data from one source to another utilizinga suitable communication medium (e.g., bulletin board, network, LAN,WAN, Intranet, Internet, etc.).

Each of the server and data source can be configured as any suitablecomputer systems implemented by any type of hardware and/or otherprocessing circuitry. In particular, the server and data source may beimplemented by any quantity of conventional or other computer systems ordevices (e.g., computer terminals, personal computers of allconfigurations, tablet, laptop, etc.), cellular telephones, personaldata assistants etc., and may include any available operating system andany available or custom software (e.g., browser software, communicationssoftware, word processing software, etc.). These systems may includetypes of displays and input devices (e.g., keyboard, mouse, voicerecognition, etc.) to enter and/or view information.

The data mining server 102 obtains a corpus of text data from datasource 104 and automatically mines patterns within the text data. Inparticular, the data mining server produces a set of frequentlyoccurring sub-patterns by extracting the frequently occurring textsub-patterns from a larger set of data. The extracted sub-patterns arethen clustered into groups by combining similar sub-patterns into thesame group. The groups are ranked based upon most frequently occurringsub-patterns, and representative sub-patterns are also selected fromeach group. This data mining technique identifies the most frequentlyoccurring sub-patterns and the most common or representative form ofsuch sub-patterns, which renders it easier for writing datastandardization rules for the corpus of data.

Referring to FIG. 2, a data set T comprising text data is initiallyobtained from the data source 104 for analysis by the server 102utilizing the sub-pattern miner application 110 (step 210). Afteracquiring the data set T, the processor 105, utilizing sub-pattern minerapplication 110, analyzes the text data to find patterns. The data maybe provided, e.g., in a series of records. Any suitable algorithm can beutilized to find sub-patterns of text by identifying textual phrases orportions of text that are identical throughout the corpus of text data.In addition, a series of initial rules may be applied to find frequentlyoccurring patterns of text based upon the general knowledge of thecorpus of data records being analyzed. For example, in scenarios inwhich data records are being analyzed that are known to contain dates,addresses, etc., certain sub-patterns that are expected to frequentlyoccur (e.g. a series of numerical digits representing a date) can beidentified and used to assist in finding frequently occurring patternsof text. Alternatively, or in addition to identifying an initial set ofrules, patterns of text can be searched that may occur within apredetermined string length (e.g., within a length of no more than 10consecutive characters). Based upon this analysis, the most frequentsub-patterns are identified (step 220).

In an example embodiment, N of the most frequent sub-patterns of textare identified from the text data in the data set T (where N can be anypredetermined number). A sub-pattern can be identified, e.g., if thesub-pattern occurs at least a selected number of times (e.g., two ormore times) within the data set T. A sub-pattern can be defined as astring of text having a length of no greater than a selected number ofcharacters or symbols (e.g., 10 consecutive characters and/or symbols orless) that has been repeated at least the selected number of timeswithin the data set T. The frequency and location within the data set T(e.g., location within each data record) of each identified sub-patternis determined, and the N most frequent sub-patterns (i.e., Nsub-patterns having the greatest frequency values) are extracted fromthe data set (step 230). For example, consider a record that includesthe following string of text: ‘K+U++B+M++’, in which the values ‘K’,‘U’, ‘B’ and ‘M’ represent rule tokens for identified types of text and“+” represents un-identified types of text. In a scenario in which thestring of text ‘++B’ has been identified as a frequently occurringsub-pattern (i.e., this string of text appears at least a selectednumber of times throughout the data set), this string of text isextracted from the record and the record is replaced with twoindependent records containing ‘K+U’ and ‘+M++’, respectively.

The extracted N sub-patterns are next clustered into groups based uponthe similarity of the sub-patterns, where sub-patterns that are moresimilar to each other in relation to other sub-patterns are clustered orcombined within the same group (step 240). In an example embodiment, thefollowing distance measure is used to determine a similarity or distancevalue between two sub-patterns being compared:

${D\left( {s_{1};s_{2}} \right)} = {1 - \frac{2*{I\left( s_{1,2} \right)}}{{I\left( s_{1} \right)} + {I\left( s_{2} \right)}}}$

where:

-   -   D (s₁, s₂)=distance value for comparison between sub-patterns s₁        and s₂; and    -   I(s)=information content or value of a sub-pattern s, based upon        a summation of information content or values associated with all        characters or symbols within the sub-pattern s, also expressed        as:

I(s)=Σ^(k−l) ^(s) _(k=1) I(s _(symk))

where:

-   -   s=s_(sym1)s_(sym2)s_(sym3) . . . s_(symk) . . . s_(syml);    -   I(s_(symk))=information content or value of character or symbol        s_(symk); and    -   I(s₁s₂)=information content or value of the longest common        substring between s₁ and S₂.

The value of I(s_(symk)) is determined as follows:

I(s _(symk))=−log(p(s _(symk)))

The equation for I(s_(symk)) indicates that a token with more frequentoccurrence in the corpus will have less information content than thatone with low frequency. In particular, the probability value(p(s_(symk))) of a symbol s_(symk) is directly proportional to thenumber of occurrences of that symbol in the corpus. Since the value ofI(s_(symk)) is assigned −log(p(symk)), the information content or valuefor a sub-pattern s, namely I(s), will be greater for the symbols thatoccur less frequently. For example, a symbol such as “+” which occursmore frequently in the corpus will be assigned a smaller informationcontent value (i.e., less information content) than marker strings oftext which occur less frequently, such as the ‘K’, ‘U’, ‘B’ and ‘M’designations for rule tokens as noted in the previous example.

The similarity or distance value is used to determine whether twosub-patterns are close or distinct. Consider, for example, two pairs ofpatterns, where the first pair is ++B and +++B and the second pair is++B and ++U. The first pair of sub-patterns will have a greaterinformation content (I(s₁, s₂)) value than the second pair ofsub-patterns, since the first pair has more similarity compared to thesecond pair and also since the more common symbols (e.g., “+”) have asmaller I(s_(symk)) value than less frequently occurring symbols (e.g.,“B” and “U”). Thus, the I(s₁, s₂) value for the first pair ofsub-patterns will be determined based upon the common symbols or tokens“++B” (i.e., I(++B,+++B),which will result in a calculated I(s) value ofI(++B)), while the I(s₁, s₂) value for the second pair of sub-patternswill be smaller since it is based upon the common tokens “++”(i.e.,I(++B,++U),which will result in a calculated I(s) value of I++)).

Based upon the above equations, each sub-pattern s_(i) of the extractedgroup N of sub-patterns is compared against every other sub-patterns_(i) to establish a similarity or distance value D for each combinationof compared sub-patterns. The smaller D value indicates a closerdistance or similarity between two sub-patterns s_(i). For example, iftwo sub-patterns s₁ and s₂ are identical in character/symbol stringcontent, their I(s₁, s₂) value (i.e., longest common substring valuebetween these two sub-patterns) would be the same as I(s₁) and I(s₂),resulting in a D value of 0. If sub-pattern s₁ and sub-pattern s₂, whilenot identical, are very close in similarity such that the value of I(s₁,s ₂) approaches that of I(s₁) and/or I(s₂), the D value will be smalland approach 0 as the sub-patterns become closer in similarity to eachother. In contrast, two sub-patterns that are very different will have aD value that approaches 1.

A clustering or grouping of similar sub-patterns can be achieved bygrouping all sub-patterns s_(i) having D values, when compared with eachother, that fall within a particular range that is less than 1 (e.g., aD value no greater than about 0.5). So, for example, if a D value forthe comparison of sub-pattern s₁ and s₂ falls below a threshold value(e.g., 0.5 or less), these two sub-patterns would be clustered into thesame group. Similarly, if a D value for the comparison of sub-pattern s₁and s₃ falls below the threshold value, these two sub-patterns wouldalso be clustered into the same group. The comparison of eachsub-pattern with every other sub-pattern in the extracted group N ofsub-patterns, with further clustering or grouping of such sub-patternsinto K groups of similar sub-patterns (utilizing the similarity ordistance value calculation as previously described), results inorganizing sub-patterns with other similar sub-patterns to assist withwriting standardized rules based upon the different types of frequentlyoccurring patterns within the text data of the corpus. The clusteringgroup number K can be predetermined (i.e., forcing the N sub-patterns tofit within a selected number K of groups) or, alternatively, determinedstrictly upon how sub-patterns compare with each other based the D valuecomparison of each sub-pattern with every other sub-pattern.

The K groups of clustered sub-patterns are ranked according to whichgroups include the most frequently occurring sub-patterns (step 250).The frequency of each sub-pattern s_(i) has been previously determinedbased upon the selection of each sub-pattern initially. from the dataset T (i.e., N sub-patterns having the greatest frequency are selectedfor extraction, etc.). In particular, the K groups can be scored with anumber ranking, where the lowest scores indicate a group with asub-pattern having the greatest frequencies (e.g., the group thatcontains the sub-pattern s_(i) having the greatest frequency is providedwith a number ranking score of 1, the group that contains thesub-pattern s_(i) having the second highest frequency is provided with anumber ranking score of 2, etc.).

Each group is further analyzed to determine a representative sub-pattern(step 260). The representative sub-pattern s_(i) from each group can bethe sub-pattern having the greatest frequency within the group.

Thus, the embodiments of the present invention facilitate automaticmining of a text data set (which might include several tens or hundredsof thousand or even millions of data records) to find the mostfrequently occurring data sub-patterns, where those data sub-patternscan further be grouped based upon similarity so as to obtain arepresentative sub-pattern from each grouping. This automatic mining ofdata is a much more rapid and efficient process that reduces the timeconstraints and cost for manual mining of such data to findsub-patterns, and these sub-patterns that are found are further veryuseful for enabling the generation of data standardization rules for thedata set (where the rules can be based upon the common and mostfrequently occurring data patterns).

Consider, for example, a data set including 65,000 or more postaladdress records for individuals, companies and/or other entities. Byselecting, e.g., a sub-pattern length of 2-5 within the text data todetermine the most frequent sub-patterns and a value of N=2000 (i.e.,find the 2000 most frequently occurring sub-patterns), the 2000 mostfrequently occurring sub-patterns are found in a much more efficient andless timely manner in comparison to a manually generated set. Further,the organization of the sub-patterns into groups based upon similarityis achieved efficiently and quickly to facilitate a determination ofwhich types of rules to apply for standardization of the data. Manyother data sets including all variations of text data associated withdifferent types of data records can also be mined in accordance with theembodiments of the present invention.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Perl, Smalltalk, C++ or the like and conventionalprocedural programming languages, such as the “C” programming languageor similar programming languages, structured query language (SQL) formanaging data in relational database management systems, etc. Theprogram code may execute entirely on the user's computer, partly on theuser's computer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider).

Aspects of the present invention are described with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

1. A system for mining for sub-patterns within a text data set, thesystem comprising: a data source to store a text data set; and aprocessor configured with logic to: find a set of N frequently occurringsub-patterns within the data set; extract the N sub-patterns from thedata set; and cluster the extracted sub-patterns into K groups such thateach extracted sub-pattern is placed within the same group with otherextracted sub-patterns based upon a distance value D that determines adegree of similarity between the sub-pattern and every other sub-patternwithin the same group.
 2. The system of claim 1, wherein the processoris configured to determine the distance value D between any twosub-patterns s₁ and s₂ of the N sub-patterns based upon the followingequation:${D\left( {s_{1},s_{2}} \right)} = {1 - \frac{2*{I\left( s_{1,2} \right)}}{{I\left( s_{1} \right)} + {I\left( s_{2} \right)}}}$wherein: I(s₁, s₂)=value of a longest common substring between s₁ ands₂; I(s₁)=value of sub-pattern s₁ based upon a summation of valuesassociated with all characters or symbols within the sub-pattern s₁;I(s₂)=value of sub-pattern s₂ based upon a summation of valuesassociated with all characters or symbols within the sub-pattern s₂; anda value assigned to each character or symbol is dependent upon anoccurrence of the character or symbol in the data set, where charactersor symbols having greater frequencies of occurrence within the data setare assigned smaller values in relation to characters or symbols havingsmaller frequencies of occurrence within the data set.
 3. The system ofclaim 1, wherein the processor is further configured with logic to:assign a number ranking to each of the K groups based upon a frequencyof occurrence of a sub-pattern within the data set for each group. 4.The system of claim 3, wherein the processor is configured to designatea first group including a sub-pattern having a highest frequency inrelation to all other sub-patterns in the first group and a second groupincluding a sub-pattern having a highest frequency in relation to allother sub-patterns in the second group, the highest frequency associatedwith the first group being greater than the highest frequency associatedwith the second group, and the first group being ranked with a lowernumber than a ranking number of the second group.
 5. The system of claim1, wherein the processor is further configured with logic to select arepresentative sub-pattern from each of the K groups.
 6. A computerprogram product for mining for sub-patterns within a text data set, thecomputer program product comprising: a computer readable storage mediumhaving computer readable program code embodied therewith, the computerreadable program code configured to: find a set of N frequentlyoccurring sub-patterns within the data set; extract the N sub-patternsfrom the data set; and cluster the extracted sub-patterns into K groupssuch that each extracted sub-pattern is placed within the same groupwith other extracted sub-patterns based upon a distance value D thatdetermines a degree of similarity between the sub-pattern and everyother sub-pattern within the same group.
 7. The computer program productof claim 6, wherein the N frequently occurring sub-patterns are the Nmost frequently occurring sub-patterns within the data set.
 8. Thecomputer program product of claim 6, wherein each sub-pattern has aselected length of consecutive characters or symbols within the textdata set that is no greater than a selected number.
 9. A computerprogram product for mining for sub-patterns within a text data set, thecomputer program product comprising: a computer readable storage mediumhaving computer readable program code embodied therewith, the computerreadable program code configured to: find a set of N frequentlyoccurring sub-patterns within the data set; extract the N sub-patternsfrom the data set; and cluster the extracted sub-patterns into K groupssuch that each extracted sub-pattern is placed within the same groupwith other extracted sub-patterns based upon a distance value D thatdetermines a degree of similarity between the sub-pattern and everyother sub-pattern within the same group; wherein the computer readableprogram code is configured to calculate the distance value D between anytwo sub-patterns s₁ and s₂ of the N sub-patterns based upon thefollowing equation:${D\left( {s_{1},s_{2}} \right)} = {1 - \frac{2*{I\left( s_{1,2} \right)}}{{I\left( s_{1} \right)} + {I\left( s_{2} \right)}}}$wherein: I(s₁, s₂)=value of a longest common substring between s₁ ands₂; I(s₁)=value of sub-pattern s₁ based upon a summation of valuesassociated with all characters or symbols within the sub-pattern s₁;I(s₂)=value of sub-pattern s₂ based upon a summation of valuesassociated with all characters or symbols within the sub-pattern s₂; anda value assigned to each character or symbol is dependent upon anoccurrence of the character or symbol in the data set, where charactersor symbols having greater frequencies of occurrence within the data setare assigned smaller values in relation to characters or symbols havingsmaller frequencies of occurrence within the data set.
 10. The computerprogram product of claim 6, wherein the computer readable program codeis further configured to: assign a number ranking to each of the Kgroups based upon a frequency of occurrence of a sub-pattern within thedata set for each group.
 11. The computer program product of claim 10,wherein a first group includes a sub-pattern having a highest frequencyin relation to all other sub-patterns in the first group and a secondgroup includes a sub-pattern having a highest frequency in relation toall other sub-patterns in the second group, the highest frequencyassociated with the first group is greater than the highest frequencyassociated with the second group, and the first group is ranked with alower number than a ranking number of the second group.
 12. The computerprogram product of claim 6, wherein the computer readable program codeis further configured to: select a representative sub-pattern from eachof the K groups.
 13. The computer program product of claim 12, whereinthe sub-pattern in each group of the K groups having a highestdetermined frequency of occurrence in relation to determined frequenciesof occurrence for all other sub-patterns within each group is selectedas the representative sub-pattern for each group.